#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<assert.h>
#include "Queue.h"

typedef int dataType;
typedef struct BinaryTreeNode {
	dataType data;
	struct BinaryTreeNode* left;
	struct BinaryTreeNode* right;
}BTNode;

BTNode* createBTNode(dataType x);
void preOrder(BTNode* root);
void inOrder(BTNode* root);
void postOrder(BTNode* root);
void levelOrder(BTNode* root);
int treeSize(BTNode* root);
int treeLevel(BTNode* root, int k);
int treeHeight(BTNode* root);
BTNode* findBTNode(BTNode* root, dataType x);
bool isCompleteBinaryTree(BTNode* root);
void destroyBinaryTree(BTNode* root);

